/* 'use strict';
const uniPay = require('uni-pay');
const config = require('uni-pay/config');
const db = uniCloud.database();
const cmd = db.command;
// 初始化 uniPay 实例
const pay = uniPay.init(config);

exports.main = async (event, context) => {
  try {
    // 验证回调通知的签名
    const result = await pay.verifyNotify(event);
    if (result) {
      const {
        refund_status, // 退款状态
        out_trade_no, // 商户订单号
        out_refund_no, // 商户退款单号
        refund_fee // 退款金额
      } = result.data;

      // 根据退款状态进行相应处理
      if (refund_status === 'SUCCESS') {
        // 退款成功，更新订单状态等操作
        console.log(`退款成功，订单号：${out_trade_no}，退款单号：${out_refund_no}，退款金额：${refund_fee}`);
        db.collection("ly-mall-order").where({
          out_trade_no: out_trade_no
        }).update({
          status: 3, // 更新订单状态为已退款
          out_refund_no: out_refund_no,
          refund_fee: refund_fee
        })
      } else if (refund_status === 'FAIL') {
        // 退款失败，记录错误信息等操作
        console.error(`退款失败，订单号：${out_trade_no}，退款单号：${out_refund_no}`);
      }

      // 返回成功响应给支付渠道
      return pay.successNotify();
    } else {
      // 签名验证失败，返回错误响应
      return pay.failNotify();
    }
  } catch (e) {
    console.error('退款回调处理出错:', e);
    return pay.failNotify();
  }
}; */

const db = uniCloud.database();
const cmd = db.command;
//此回调函数主要实现支付回调校验，防止前端
module.exports = async (obj) => {
  let user_order_success = true;
  let {
    data = {}
  } = obj;
  let {
    order_no,
    out_trade_no,
    total_fee,
    provider
  } = data; // uni-pay-orders 表内的数据均可获取到，直接解构出想要的即可

  db.collection("ly-mall-order").where({
    order_no: order_no
  }).update({
    status: 3, // 更新订单状态为已退款
    out_refund_no: out_refund_no,
    refund_fee: refund_fee
  })

  return user_order_success;
}